# -*- coding: utf-8 -*-

#Joao Alturas_6197
#2014_11_17

import csv
import sys
import numpy as np
import matplotlib.pyplot as plt
import xlrd

from pylab import *
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy import Column, Integer, String, Float, func
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('sqlite:///treta1.db')
Base = declarative_base()

"""
#Create base dados 
"""
class Dados(Base):
	
	__tablename__ = 'dados'	
	id = Column(Integer, primary_key=True)
	ano = Column(Integer)
	ipcGlobal = Column(Float) 	 
	varAnualTaxInfl = Column(Float)     
	remMinMensal = Column(Float)   
	remMaxMensal = Column(Float) 
	pibPercapitAnual = Column(Float) 
	rendNacBrutPercAnual = Column (Float)  
	rendDispBrutPercAnual = Column (Float)  
	remunPercapitAnual = Column (Float) 
	
	def __init__(self,ano,ipcGlobal,varAnualTaxInfl,remMinMensal,remMaxMensal,
		pibPercapitAnual,rendNacBrutPercAnual,rendDispBrutPercAnual,remunPercapitAnual):
											 
			self.ano = ano
			try:
				self.ipcGlobal = float(ipcGlobal)	
			except:
				self.ipcGlobal = 0
			try: 
				self.varAnualTaxInfl = float(varAnualTaxInfl)
			except:
				self.varAnualTaxInfl = 0
			try:
				self.remMinMensal = float(remMinMensal)
			except:
				self.remMinMensal = 0
			try:
				self.remMaxMensal = float(remMaxMensal)
			except:
				self.remMaxMensal= 0
			try:
				self.pibPercapitAnual = float(pibPercapitAnual)
			except:
				self.pibPercapitAnual = 0
			try:
				self.rendNacBrutPercAnual = float(rendNacBrutPercAnual)
			except:
				self.rendNacBrutPercAnual = 0
			try:
				self.rendDispBrutPercAnual = float(rendDispBrutPercAnual)
			except:
				self.rendDispBrutPercAnual = 0
			try:
				self.remunPercapitAnual = float(remunPercapitAnual)
			except:
				self.remunPercapitAnual = 0
				
         
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()

"""
# Variaçao da Taxa de Inflacao
	
"""
import wx
def treta(event):
	print "dassss"
	
class Example(wx.Frame):
	def __init__(self, *args, **kwargs):
		super(Example, self).__init__(*args, **kwargs)
		self.InitUI()
	
	def InitUI(self):
		menubar = wx.MenuBar()
		fileMenu = wx.Menu()
		ipc = fileMenu.Append(103, "Indice de preços ao consumidor", "Indice de preços ao consumidor")
		vti = fileMenu.Append(104, "Variação Anual da Taxa de Inflação", "Variação Anual da Taxa de Inflação")
		rmim = fileMenu.Append(105, "Remuneração Mínima Mensal", "Remuneração Mínima Mensal")
		rmam = fileMenu.Append(106, "Remuneração Maxima Mensal", "Remuneração Maxima Mensal")
		pibpa = fileMenu.Append(107, "Produto Interno Bruto Percapita Anual", "Produto Interno Bruto Percapita Anual")
		rnbpa = fileMenu.Append(108, "Rendimento Nacional Bruto Percapita Anual", "Rendimento Nacional Bruto Percapita Anual")
		rdbpa = fileMenu.Append(109, "Rendimento Disponível Bruto Percapita Anual", "Rendimento Disponível Bruto Percapita Anual")
		rpa = fileMenu.Append(110, "Remuneração Percapita Anual", "Remuneração Percapita Anual")
		fit = fileMenu.Append(wx.ID_EXIT, "Quit", "Quit")
		menubar.Append(fileMenu, "&File")
		self.SetMenuBar(menubar)
		self.Bind(wx.EVT_MENU, self.OnQuit, fit)
		self.Bind(wx.EVT_MENU, self.ipc, ipc)
		self.Bind(wx.EVT_MENU, self.vti, vti)
		self.Bind(wx.EVT_MENU, self.rmim, rmim)
		self.Bind(wx.EVT_MENU, self.rmam, rmam)
		self.Bind(wx.EVT_MENU, self.pibpa, pibpa)
		self.Bind(wx.EVT_MENU, self.rnbpa, rnbpa)
		self.Bind(wx.EVT_MENU, self.rpa, rpa)
		
		self.SetSize((300, 200))
		self.SetTitle("Menu")
		self.Centre()
		self.Show(True)
		
	def ipc(self, bla):
		dados = session.query(Dados.ano, Dados.ipcGlobal).all()
		anos = session.query(Dados.ano).all()
		limites = session.query(func.max(Dados.ipcGlobal).label("maximo"), func.min(Dados.ipcGlobal).label("minimo")).one()
		ipc = session.query(Dados.ipcGlobal).all()
		print len(anos), len(ipc)	
		anos =[x[0] for x in anos]
		anos.pop(0)
		anos = [0] + anos
		plot(range(1977,1977+len(ipc)),ipc)
		grid()
		title(u'Indice de precos ao Consumidor (IPC)')
		xlabel(u'Anos')
		ylabel(u'Indice de Preços ao Consumidor')
		show()
	
	def vti(self, bla):
		dados = session.query(Dados.ano, Dados.varAnualTaxInfl).all()
		anos = session.query(Dados.ano).all()
		limites = session.query(func.max(Dados.varAnualTaxInfl).label("maximo"), func.min(Dados.varAnualTaxInfl).label("minimo")).one()
		vati = session.query(Dados.varAnualTaxInfl).all()
		print len(anos), len(vati)	
		anos =[x[0] for x in anos]
		anos.pop(0)
		anos = [0] + anos
		plot(range(1977,1977+len(vati)),vati)
		grid()
		title(u'Variação Anual da Taxa de Inflação' )
		xlabel(u'Anos')
		ylabel(u'Variação Anual da Taxa de Inflação')
		show()
		

		
	def rmim(self, bla):
		dados = session.query(Dados.ano, Dados.remMinMensal).all()
		anos = session.query(Dados.ano).all()
		limites = session.query(func.max(Dados.remMinMensal).label("maximo"), func.min(Dados.remMinMensal).label("minimo")).one()
		rmmesal = session.query(Dados.remMinMensal).all()
		print len(anos), len(rmmesal)	
		anos =[x[0] for x in anos]
		anos.pop(0)
		anos = [0] + anos
		plot(range(1977,1977+len(rmmesal)),rmmesal)
		grid()
		#locs, labels = xticks(range(1, len(anos)+1), anos)
		title(u'Remuneração Mínima Mensal')
		xlabel(u'Anos')
		ylabel(u'Remuneração Mínima Mensal')
		show()
		
	def rmam(self, bla):
		dados = session.query(Dados.ano, Dados.remMaxMensal).all()
		anos = session.query(Dados.ano).all()
		limites = session.query(func.max(Dados.remMaxMensal).label("maximo"), func.min(Dados.remMaxMensal).label("minimo")).one()
		rmaxmesal = session.query(Dados.remMaxMensal).all()
		print len(anos), len(rmaxmesal)	
		anos =[x[0] for x in anos]
		anos.pop(0)
		anos = [0] + anos
		plot(range(1977,1977+len(rmaxmesal)),rmaxmesal)
		grid()
		#locs, labels = xticks(range(1, len(anos)+1), anos)
		title(u'Remuneração Maxima Mensal')
		xlabel(u'Anos')
		ylabel(u'Remuneração Maxima Mensal')
		show()
		
	def pibpa(self, bla):
		dados = session.query(Dados.ano, Dados.pibPercapitAnual).all()
		anos = session.query(Dados.ano).all()
		limites = session.query(func.max(Dados.pibPercapitAnual).label("maximo"), func.min(Dados.pibPercapitAnual).label("minimo")).one()
		pibPerCAnual = session.query(Dados.remMaxMensal).all()
		print len(anos), len(pibPerCAnual)	
		anos =[x[0] for x in anos]
		anos.pop(0)
		anos = [0] + anos
		plot(range(1977,1977+len(pibPerCAnual)),pibPerCAnual)
		grid()
		#locs, labels = xticks(range(1, len(anos)+1), anos)
		title(u'Produto Interno Bruto Percapita Anual')
		xlabel(u'Anos')
		ylabel(u'Produto Interno Bruto Percapita Anual')
		show()
		
	def rnbpa(self, bla):
		dados = session.query(Dados.ano, Dados.rendNacBrutPercAnual).all()
		anos = session.query(Dados.ano).all()
		limites = session.query(func.max(Dados.rendNacBrutPercAnual).label("maximo"), func.min(Dados.rendNacBrutPercAnual).label("minimo")).one()
		reNaBrPeAnual = session.query(Dados.remMaxMensal).all()
		print len(anos), len(reNaBrPeAnual)	
		anos =[x[0] for x in anos]
		anos.pop(0)
		anos = [0] + anos
		plot(range(1977,1977+len(reNaBrPeAnual)),reNaBrPeAnual)
		xlabel(u'Anos')
		ylabel(u'Rendimneto Nacional Bruto Percapita Anual')
		#plot(x,y,'rd')
		grid()
		title(u'Rendimento Nacional Bruto Percapita Anual')
		show()
		
	def rdbpa(self, bla):
		dados = session.query(Dados.ano, Dados.rendDispBrutPercAnual).all()
		anos = session.query(Dados.ano).all()
		limites = session.query(func.max(Dados.rendDispBrutPercAnual).label("maximo"), func.min(Dados.rendDispBrutPercAnual).label("minimo")).one()
		renDisBrPercAnual = session.query(Dados.remMaxMensal).all()
		print len(anos), len(renDisBrPercAnual)	
		anos =[x[0] for x in anos]
		anos.pop(0)
		anos = [0] + anos
		plot(range(1977,1977+len(renDisBrPercAnual)),renDisBrPercAnual)
		xlabel(u'Anos')
		ylabel(u'Rendimneto Disponível Bruto Percapita Anual')
		#plot(x,y,'rd')
		grid()
		title(u'Rendimento Disponível Bruto Percapita Anual')
		show()
		
	def rpa(self, bla):
		dados = session.query(Dados.ano, Dados.remunPercapitAnual).all()
		anos = session.query(Dados.ano).all()
		limites = session.query(func.max(Dados.remunPercapitAnual).label("maximo"), func.min(Dados.remunPercapitAnual).label("minimo")).one()
		remPercAnual = session.query(Dados.remMaxMensal).all()
		print len(anos), len(remPercAnual)	
		anos =[x[0] for x in anos]
		anos.pop(0)
		anos = [0] + anos
		plot(range(1977,1977+len(remPercAnual)),remPercAnual)
		xlabel(u'Anos')
		ylabel(u'Remuneração Percapita Anual')
		#plot(x,y,'rd')
		grid()
		title(u'Remuneração Percapita Anual')
		show()
		
	def OnQuit(self, bye):
		print bye
		
		
def  main():
	ex = wx.App()
	Example(None)
	ex.MainLoop()
	
if __name__ == "__main__":
	main()
		
